package hello.test;

import static org.junit.Assert.*;
import hello.A11StringUtil;

import org.junit.Test;

public class DeleteCharacter {

	@Test
	public void argsIsNullNull() {
		String result = A11StringUtil.deleteStr(null, null);
		assertNull(result);
	}

	@Test
	public void argsStrNotNull() {
		String result = A11StringUtil.deleteStr("hello", null);
		assertNull(result);
	}

	@Test
	public void normalCase() {
		String result = A11StringUtil.deleteStr("a", "abca");
		assertTrue(result.equals("bc"));
	}

	@Test
	public void spaceCharacter() {
		String result = A11StringUtil.deleteStr("a", "abca ase sea");
		assertTrue(result.equals("bc se se"));
	}

	@Test
	public void targetIsAllSpace() {
		String result = A11StringUtil.deleteStr("a", "     ");
		assertTrue(result.equals("     "));
	}

	@Test(expected = exception.StringException.class)
	public void exception() {
		A11StringUtil.deleteStr(new String(), "null");
		assertNotNull(null);
	}

	@Test()
	public void hiragana() {
		String result = A11StringUtil.deleteStr("る",
				"テクノロジックアートは、「最先端の技術でユーザーニーズに応える」");
		assertTrue(result.equals("テクノロジックアートは、「最先端の技術でユーザーニーズに応え」"));
	}

	@Test()
	public void kanji() {
		String result = A11StringUtil.deleteStr("最先端",
				"テクノロジックアートは、「最先端の技術でユーザーニーズに応える」");
		assertTrue(result.equals("テクノロジックアートは、「の技術でユーザーニーズに応える」"));
	}

	@Test()
	public void katakana() {
		String result = A11StringUtil.deleteStr("クノ",
				"テクノロジックアートは、「最先端の技術でユーザーニーズに応える」");
		assertTrue(result.equals("テロジックアートは、「最先端の技術でユーザーニーズに応える」"));
	}
}
